package dados;

import dados.HibernateUtil;
import negocio.FornecedorBean;
import negocio.UnidadeBean;

import org.hibernate.Query;
import org.hibernate.Session;
import java.util.List;

public class FornecedorDAO {

	public void armazenarFornecedor(String razao, String CNPJ, String telefone, String telefone1, String contato, String rua, String numero, String bairro, String cep, String cidade, String estado) {
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		FornecedorBean f= new FornecedorBean();
		f.setRazaoSocial(razao);
		f.setCnpj(CNPJ);
		f.setTelefone1(telefone);
		f.setTelefone2(telefone1);
		f.setContato(contato);
		f.setRua(rua);
		f.setNumero(numero);
		f.setBairro(bairro);
		f.setCep(cep);
		f.setCidade(cidade);
		f.setEstado(estado);
		session.save(f);
		session.getTransaction().commit();
		}
	
	public void editarFornecedor(FornecedorBean f, String razao, String CNPJ, String telefone, String telefone1, String contato, String rua, String numero, String bairro, String cep, String cidade, String estado){
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		f.setRazaoSocial(razao);
		f.setCnpj(CNPJ);
		f.setTelefone1(telefone);
		f.setTelefone2(telefone1);
		f.setContato(contato);
		f.setRua(rua);
		f.setNumero(numero);
		f.setBairro(bairro);
		f.setCidade(cidade);
		f.setEstado(estado);
		f.setCep(cep);
		session.update(f);
		session.getTransaction().commit();	
	}
	
	@SuppressWarnings("unchecked")
	public List listar(){
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		List result = session.createQuery("from FornecedorBean").list();
		session.getTransaction().commit();
		return  result;
	}
	
	public FornecedorBean consultarId(long idFornecedor){
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		Query q = session.createQuery("from FornecedorBean forn where forn.idfornecedor = :id");
		q.setLong("id", idFornecedor);
		FornecedorBean result = (FornecedorBean) q.uniqueResult();
		session.getTransaction().commit();
		return   result;
	}
	
	public void excluirFornecedor (FornecedorBean f){
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		session.delete(f);
		session.getTransaction().commit();
	}
	
}
